﻿namespace com.stifel.ProjectMgmt
{
    using System.Collections.Generic;
    using System.Drawing;
    using System.Linq;

    public static class ColorSchemes
    {
        #region Fields

        static List<ColorScheme> _BaseColors;

        #endregion Fields

        #region Properties

        public static List<ColorScheme> BaseColors
        {
            get
            {
                if ( _BaseColors == null )
                {
                    _BaseColors = new ColorScheme[ ] {
                        new ColorScheme(Color.White.Name, Color.Black.Name),
                        new ColorScheme(Color.Aqua.Name, Color.Black.Name),
                        //new ColorScheme(Color.Bisque.Name, Color.Black.Name),
                        new ColorScheme(Color.Blue.Name, Color.White.Name),
                        new ColorScheme(Color.BlueViolet.Name, Color.White.Name),
                        new ColorScheme(Color.Brown.Name, Color.White.Name),
                        new ColorScheme(Color.CadetBlue.Name, Color.Black.Name),
                        new ColorScheme(Color.Chartreuse.Name, Color.Black.Name),
                        new ColorScheme(Color.Chocolate.Name, Color.Black.Name),
                        new ColorScheme(Color.Aquamarine.Name, Color.Black.Name),
                        new ColorScheme(Color.Coral.Name, Color.Black.Name),
                        new ColorScheme(Color.CornflowerBlue.Name, Color.Black.Name),
                        new ColorScheme(Color.Crimson.Name, Color.Black.Name),
                        new ColorScheme(Color.BurlyWood.Name, Color.Black.Name),
                        //new ColorScheme(Color.Cyan.Name, Color.Black.Name),
                        new ColorScheme(Color.DarkBlue.Name, Color.White.Name),
                        new ColorScheme(Color.DarkCyan.Name, Color.Black.Name),
                        new ColorScheme(Color.DarkGoldenrod.Name, Color.Black.Name),
                        new ColorScheme(Color.DarkGreen.Name, Color.Black.Name),
                        new ColorScheme(Color.DarkKhaki.Name, Color.Black.Name),
                        new ColorScheme(Color.DarkMagenta.Name, Color.White.Name),
                        new ColorScheme(Color.DarkOliveGreen.Name, Color.Black.Name),
                        new ColorScheme(Color.DarkOrange.Name, Color.Black.Name),
                        new ColorScheme(Color.DarkOrchid.Name, Color.Black.Name),
                        new ColorScheme(Color.DarkRed.Name, Color.White.Name),
                        new ColorScheme(Color.DarkSalmon.Name, Color.Black.Name),
                        new ColorScheme(Color.DarkSeaGreen.Name, Color.Black.Name),
                        new ColorScheme(Color.DarkSlateBlue.Name, Color.Black.Name),
                        new ColorScheme(Color.DarkSlateGray.Name, Color.Black.Name),
                        //new ColorScheme(Color.DarkTurquoise.Name, Color.Black.Name),
                        //new ColorScheme(Color.DarkViolet.Name, Color.White.Name),
                        new ColorScheme(Color.DeepPink.Name, Color.White.Name),
                        //new ColorScheme(Color.DeepSkyBlue.Name, Color.Black.Name),
                        new ColorScheme(Color.DimGray.Name, Color.Black.Name),
                        new ColorScheme(Color.DodgerBlue.Name, Color.Black.Name),
                        new ColorScheme(Color.Firebrick.Name, Color.Black.Name),
                        new ColorScheme(Color.ForestGreen.Name, Color.Black.Name),
                        new ColorScheme(Color.Fuchsia.Name, Color.Black.Name),
                        new ColorScheme(Color.Gold.Name, Color.Black.Name),
                        new ColorScheme(Color.Goldenrod.Name, Color.Black.Name),
                        new ColorScheme(Color.Green.Name, Color.Black.Name),
                        new ColorScheme(Color.GreenYellow.Name, Color.Black.Name),
                        //new ColorScheme(Color.NavajoWhite.Name, Color.Black.Name),
                        new ColorScheme(Color.HotPink.Name, Color.Black.Name),
                        new ColorScheme(Color.IndianRed.Name, Color.Black.Name),
                        new ColorScheme(Color.Indigo.Name, Color.White.Name),
                        //new ColorScheme(Color.Khaki.Name, Color.Black.Name),
                        new ColorScheme(Color.LawnGreen.Name, Color.Black.Name),
                        //new ColorScheme(Color.LemonChiffon.Name, Color.Black.Name),
                        new ColorScheme(Color.LightBlue.Name, Color.Black.Name),
                        new ColorScheme(Color.LightCoral.Name, Color.Black.Name),
                        //new ColorScheme(Color.LightCyan.Name, Color.Black.Name),
                        //new ColorScheme(Color.LightGoldenrodYellow.Name, Color.Black.Name),
                        new ColorScheme(Color.LightGreen.Name, Color.Black.Name),
                        new ColorScheme(Color.LightPink.Name, Color.Black.Name),
                        new ColorScheme(Color.LightSalmon.Name, Color.Black.Name),
                        new ColorScheme(Color.Navy.Name, Color.White.Name),
                        new ColorScheme(Color.LightSeaGreen.Name, Color.Black.Name),
                        new ColorScheme(Color.LightSkyBlue.Name, Color.Black.Name),
                        new ColorScheme(Color.LightSlateGray.Name, Color.Black.Name),
                        new ColorScheme(Color.LightSteelBlue.Name, Color.Black.Name),
                        new ColorScheme(Color.Lime.Name, Color.Black.Name),
                        new ColorScheme(Color.LimeGreen.Name, Color.Black.Name),
                        new ColorScheme(Color.Magenta.Name, Color.Black.Name),
                        new ColorScheme(Color.Maroon.Name, Color.White.Name),
                        new ColorScheme(Color.MediumAquamarine.Name, Color.Black.Name),
                        //new ColorScheme(Color.Moccasin.Name, Color.Black.Name),
                        new ColorScheme(Color.MediumBlue.Name, Color.White.Name),
                        new ColorScheme(Color.OliveDrab.Name, Color.Black.Name),
                        new ColorScheme(Color.MediumOrchid.Name, Color.Black.Name),
                        new ColorScheme(Color.MediumPurple.Name, Color.Black.Name),
                        new ColorScheme(Color.MediumSeaGreen.Name, Color.Black.Name),
                        new ColorScheme(Color.MediumSlateBlue.Name, Color.White.Name),
                        new ColorScheme(Color.MediumSpringGreen.Name, Color.Black.Name),
                        new ColorScheme(Color.MediumTurquoise.Name, Color.Black.Name),
                        new ColorScheme(Color.Plum.Name, Color.Black.Name),
                        new ColorScheme(Color.MediumVioletRed.Name, Color.Black.Name),
                        new ColorScheme(Color.MidnightBlue.Name, Color.White.Name),
                        //new ColorScheme(Color.MistyRose.Name, Color.Black.Name),
                        new ColorScheme(Color.Olive.Name, Color.Black.Name),
                        new ColorScheme(Color.Orange.Name, Color.Black.Name),
                        new ColorScheme(Color.OrangeRed.Name, Color.Black.Name),
                        new ColorScheme(Color.Orchid.Name, Color.Black.Name),
                        //new ColorScheme(Color.PaleGoldenrod.Name, Color.Black.Name),
                        new ColorScheme(Color.PaleGreen.Name, Color.Black.Name),
                        new ColorScheme(Color.PaleTurquoise.Name, Color.Black.Name),
                        new ColorScheme(Color.PaleVioletRed.Name, Color.Black.Name),
                        //new ColorScheme(Color.PapayaWhip.Name, Color.Black.Name),
                        //new ColorScheme(Color.PeachPuff.Name, Color.Black.Name),
                        new ColorScheme(Color.Peru.Name, Color.Black.Name),
                        new ColorScheme(Color.Pink.Name, Color.Black.Name),
                        new ColorScheme(Color.PowderBlue.Name, Color.Black.Name),
                        new ColorScheme(Color.Purple.Name, Color.White.Name),
                        new ColorScheme(Color.Red.Name, Color.Black.Name),
                        new ColorScheme(Color.RosyBrown.Name, Color.Black.Name),
                        new ColorScheme(Color.RoyalBlue.Name, Color.Black.Name),
                        new ColorScheme(Color.SaddleBrown.Name, Color.Black.Name),
                        new ColorScheme(Color.Salmon.Name, Color.Black.Name),
                        new ColorScheme(Color.SandyBrown.Name, Color.Black.Name),
                        new ColorScheme(Color.SeaGreen.Name, Color.Black.Name),
                        new ColorScheme(Color.Sienna.Name, Color.Black.Name),
                        new ColorScheme(Color.SkyBlue.Name, Color.Black.Name),
                        new ColorScheme(Color.SlateBlue.Name, Color.Black.Name),
                        new ColorScheme(Color.SlateGray.Name, Color.Black.Name),
                        new ColorScheme(Color.SpringGreen.Name, Color.Black.Name),
                        new ColorScheme(Color.SteelBlue.Name, Color.Black.Name),
                        new ColorScheme(Color.Tan.Name, Color.Black.Name),
                        new ColorScheme(Color.Teal.Name, Color.Black.Name),
                        new ColorScheme(Color.Thistle.Name, Color.Black.Name),
                        new ColorScheme(Color.Tomato.Name, Color.Black.Name),
                        new ColorScheme(Color.Turquoise.Name, Color.Black.Name),
                        new ColorScheme(Color.Violet.Name, Color.Black.Name),
                        new ColorScheme(Color.Wheat.Name, Color.Black.Name),
                        new ColorScheme(Color.Yellow.Name, Color.Black.Name),
                        new ColorScheme(Color.YellowGreen.Name, Color.Black.Name)
                    }.ToList( );
                }
                return _BaseColors;
            }
        }

        public static string ShadeColor
        {
            get
            {
                return "#f5f6f7";// "#dcdcdc";
            }
        }

        public static string White
        {
            get
            {
                return "White";
            }
        }

        #endregion Properties
    }
}